#include <stdio.h>
#include <stdlib.h>
#include "time.h"


void printJaegerMathiasSimulation()
{
    int array[100][80];
    int zeile,stelle,wert;
    // Zufallszahl bestimmen
    srand(time(NULL));

    //Startreihe bestimmen
    for(zeile=0;zeile<80;zeile++){                      // Ueber 80 Stellen
        if(rand()%2 == 0) array[0][zeile] = 1;  // Modulo fuer 1
        else array[0][zeile] = 0;               // und 0

    }

/* Wert fuer jede Zelle der Matrix anpassen. Angefangen bei 1, um die erste
   zufallsgenerierte Zeile nicht zu bearbeiten*/
    for(zeile=1;zeile<100;zeile++){                        // Fuer jede stelle
        for(stelle=0;stelle<80;stelle++){                  // 80 Stellen
            wert=0;
            switch(stelle){
            case(0):                    // Erste Zelle hat nur 3 Nachbarn
                wert += array[zeile-1][stelle];
                wert += array[zeile-1][stelle+1];
                wert += array[zeile-1][stelle+2];
                break;
            case(1):                    // Zweite Zelle hat 4 Nachbarn
                wert += array[zeile-1][stelle-1];
                wert += array[zeile-1][stelle];
                wert += array[zeile-1][stelle+1];
                wert += array[zeile-1][stelle+2];
                break;
            case(78):                    // Vorletzte Zelle hat 4 Nachbarn
                wert += array[zeile-1][stelle-2];
                wert += array[zeile-1][stelle-1];
                wert += array[zeile-1][stelle];
                wert += array[zeile-1][stelle+1];
                break;
            case(79):                    // Letzte Zelle hat 3 Nachbarn
                wert += array[zeile-1][stelle-2];
                wert += array[zeile-1][stelle-1];
                wert += array[zeile-1][stelle];
                break;
            default:                    // Alle anderen Zellen haben 5 Nachbarn
                wert += array[zeile-1][stelle-2];
                wert += array[zeile-1][stelle-1];
                wert += array[zeile-1][stelle];
                wert += array[zeile-1][stelle+1];
                wert += array[zeile-1][stelle+2];
                break;
            }                           // Ende der Switch-Case

            if(wert==2 || wert==4)
                    {
                    array[zeile][stelle] = 1;    // 1 wenn 2 oder 4 Nachbarn
                    }
            else array[zeile][stelle] = 0;       // Sonste 0
        }
    }

    // stelle ausgeben
    for(zeile=0;zeile<100;zeile++)                  // Fuer 100 Zeilen
    {
        for(stelle=0;stelle<80;stelle++)               // Ueber 80 Stellen
        {
            if(array[zeile][stelle] == 1)
            {
             printf("X");               // x, falls genuegend Nachbarn (1)
            }
            else
            {
             printf("-");                // " ", falls Abweichung (0)
             }
        }
    }                                    // Ende der Ausgabe

    printf("\nEnde der Berrechnung!\n");
    system ("pause");


	
}
